1// 2// NSString+compactDescription.m 3// KeychainMigrator 4// 5// Created by J Osborne on 2/19/13. 6// 7// 8 9#import "NSString+compactDescription.h" 10 11@implementation NSString (compactDescription) 12 13-(NSString*)compactDescription 14{ 15 static NSCharacterSet *forceQuotes = nil; 16 static dispatch_once_t setup; 17 dispatch_once(&setup, ^{ 18 forceQuotes = [NSCharacterSet characterSetWithCharactersInString:@"\"' \t\n\r="]; 19 }); 20 21 if ([self rangeOfCharacterFromSet:forceQuotes].location != NSNotFound) { 22 NSString *escaped = [self stringByReplacingOccurrencesOfString:@"\\" withString:@"\\\\"]; 23 escaped = [escaped stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""]; 24 return [NSString stringWithFormat:@"\"%@\"", escaped]; 25 } else { 26 return self; 27 } 28} 29 30@end 31